27c86d1ba70f01d6ca4432a848a87014728d044d,xwiki-platform-core/xwiki-platform-extension/xwiki-platform-extension-handlers/xwiki-platform-extension-handler-xar/src/main/java/org/xwiki/extension/xar/internal/handler/packager/xml/DocumentImporterHandler.java,DocumentImporterHandler,saveDocument,#String#,91
Before Change
XWikiContext context = getXWikiContext();
XWikiDocument document = getDocument();
XWikiDocument dbDocument = getDatabaseDocument().clone();
XWikiDocument previousDocument = getPreviousDocument();
// Merge and save
After Change
try {
XWikiContext context = getXWikiContext();
XWikiDocument currentDocument = getDatabaseDocument();
XWikiDocument nextDocument = getDocument();
// Merge and save
if (currentDocument != null && !currentDocument.isNew()) {
XWikiDocument previousDocument = getPreviousDocument();
if (previousDocument != null) {
XWikiDocument mergedDocument = currentDocument.clone();
MergeResult documentMergeResult =
mergedDocument.merge(previousDocument, nextDocument,
this.configuration.getMergeConfiguration(), context);
if (documentMergeResult.isModified()) {
if (this.configuration.isInteractive() && !documentMergeResult.getErrors().isEmpty()) {
XWikiDocument documentToSave =
askDocumentToSave(currentDocument, previousDocument, nextDocument, mergedDocument);
if (documentToSave != currentDocument) {
saveDocument(documentToSave, comment, context);
}
} else {
saveDocument(mergedDocument, comment, context);
}
}
this.mergeResult =
new XarEntryMergeResult(new XarEntry(mergedDocument.getDocumentReference(),
mergedDocument.getLanguage()), documentMergeResult);
} else {
saveDocument(nextDocument, comment, context);
}
} else {
saveDocument(nextDocument, comment, context);
}
} catch (Exception e) {
throw new SAXException("Failed to save document", e);